package name.cyrax.red.jpv.api.funcs.info;

public enum ValueType {
	UNKNOWN(null, null, null),
	INTEGER(int.class, Integer.class, "getInteger"), 
	LONG(long.class, Long.class, "getLong"), 
	DOUBLE(double.class, Double.class, "getDouble");
	
	private final Class<?> primType;
	private final Class<? extends Number> boxedType;
	private final String adapterMethod;
	
	private ValueType(Class<?> primType, Class<? extends Number> boxedType, String adapterMethod) {
		this.primType = primType;
		this.boxedType = boxedType;
		this.adapterMethod = adapterMethod;
	}		
	
	public Class<?> primitiveType() {
		return primType;
	}

	public Class<? extends Number> boxedType() {
		return boxedType;
	}
	
	public String getAdapterMethodName() {
		return adapterMethod;
	}
}